Skip to content

Conversation

@nolanpro
Copy link
Contributor

@nolanpro nolanpro commented Jan 6, 2026

This pull request contains changes for slimming your Laravel application by removing core files which are no longer included in a new Laravel application.

Before merging, you need to:

  • Checkout the shift-164321 branch
  • Review all comments for additional changes
  • Thoroughly test your application (no tests?, no CI?)

If you need help modernizing your Laravel application, check out the Human Shifts.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

ℹ️ To slim down the Laravel installation, Laravel 11 no longer has most of the core files previously included in the default Laravel application. While you are welcome to publish and customize these files, they are no longer required.

Shift takes an iterative approach to removing core files which are not customized or where its customizations may be done elsewhere in a modern Laravel 11 application. As such, you may see some commits removing files and others re-registering your customizations.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

⚠️ The application bootstrapping changed in Laravel 11. As a result, files like artisan and public/index.php were rewritten. Shift overwrote these files but detected yours may have contained customizations. You should review the diff to see if any of your customizations are still needed.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

ℹ️ Laravel 11 no longer requires you to maintain the default configuration files. Your configuration now merges with framework defaults.

Shift streamlined your configuration files by removing options that matched the Laravel defaults and preserving your true customizations. These are values which are not changeable through ENV variables.

If you wish to keep the full set of configuration files, Shift recommends running artisan config:publish --all --force to get the latest configuration files from Laravel 11, then reapplying the customizations Shift streamlined.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

ℹ️ Shift detected customized options within your configuration files which may be set with an ENV variable. To help keep your configuration files streamlined, you may set the following variables. Be sure adjust any values per environment.

APP_ENV=local
APP_KEY=base64:x80I9vQNxwllSuwBkTwfUa5qkgPTRdwqHCPSz7zHi1U=
APP_NAME=ProcessMaker
AUTH_MODEL=ProcessMaker\Models\User
BCRYPT_ROUNDS=10
CACHE_STORE=redis
DB_CONNECTION=processmaker
LOG_STACK=daily
MAIL_FROM_ADDRESS=admin@example.com
MAIL_FROM_NAME=ProcessMaker
MAIL_MAILER=smtp
PUSHER_APP_ID=app-id
PUSHER_APP_KEY=app-key
PUSHER_APP_SECRET=app-secret
QUEUE_CONNECTION=redis
REDIS_CACHE_CONNECTION=default
REDIS_QUEUE_RETRY_AFTER=86400
SESSION_DRIVER=file
SESSION_EXPIRE_ON_CLOSE=true
SESSION_SECURE_COOKIE=false

Note: some of these may simply be values which changed between Laravel versions. You may ignore any ENV variables you do not need to customize.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

ℹ️ Shift detected your application uses custom ENV variables for configuration options which have ENV variables in Laravel. Shift recommends renaming the following variables to use the one provided by Laravel:

  • APP_LANG to APP_LOCALE
  • QUEUE_DRIVER to QUEUE_CONNECTION
  • SES_KEY to AWS_ACCESS_KEY_ID
  • SES_REGION to AWS_DEFAULT_REGION
  • SES_SECRET to AWS_SECRET_ACCESS_KEY

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

⚠️ The BROADCAST_DRIVER, CACHE_DRIVER, and DATABASE_URL environment variables were renamed in Laravel 11 to BROADCAST_CONNECTION, CACHE_STORE, and DB_URL, respectively.

Shift automated this change for your committed files, but you should review any additional locations where your environment is configured and update to the new variable names.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

❌ The bootstrap/app.php file has been completely rewritten in Laravel 11 to allow configuring your Laravel application in a single location. Shift overwrote your file, but detected it may have contained customizations. You should review the diff to see if any of your customizations are still needed.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

ℹ️ Laravel 11 now updates the timestamp when publishing vendor migrations. This may cause problems in existing applications when these migrations were previously published and ran with their default timestamp.

To preserve the original behavior, Shift disabled this feature in your database.php configuration file. If you do not have any vendor migrations or have squashed all of your existing migrations, you may re-enable the update_date_on_publish option. If this is the only customization within database.php, you may remove this configuration file.

@nolanpro
Copy link
Contributor Author

nolanpro commented Jan 6, 2026

⚠️ Many of the default drivers changed in Laravel 11. For example, the default database driver is sqlite and the default cache store is database. If you experience errors setting up your environment, be sure you have properly set your ENV variables for these drivers. If you wish to adopt the new defaults, you may follow the documentation to set them up for your application.

@processmaker-sonarqube
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants